<?php

namespace App\command;

use App\service\TradeService;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Output\OutputInterface;


class checkConfigJson extends Command
{
    protected static $defaultName = 'command:checkJson';
    protected static $defaultDescription = 'command checkJson';


    const JSON_FIEDLS = [
        '任务表.json' => ['任务目标', '任务奖励道具'],
        '宝石共鸣表.json' => ['共鸣属性1', '共鸣属性2', '共鸣属性3', '共鸣属性4'],
        '宝石合成表.json' => ['合成配方', '镶嵌限制'],
        '宝箱表.json' => ['道具奖励'],
        '场景npc.json' => ['功能按钮名称'],
        '场景怪物表.json' => ['基础坐标', '必定掉落', '任务掉落', '稀有掉落', '随机掉落'],
        '场景寻宝表.json' => ['基础坐标', '必定掉落', '稀有掉落', '随机掉落'],
        '成就信息表.json' => ['属性', '属性加成', '成就奖励'],
        '打孔消耗表.json' => ['消耗'],
        '工资任务表.json' => ['任务目标', '任务奖励道具'],
        '公会任务表.json' => ['任务目标', '任务奖励道具'],
        '怪物表.json' => ['特定掉落'],
        '合成表.json' => ['合成配方'],
        '奖励信息表.json' => ['奖励道具'],
        '练功房收益表.json' => ['宝箱'],
        '礼包码.json' => ['道具'],
        '日常活动表.json' => ['任务奖励道具', '寻路'],
        '神戒表.json' => ['基础属性', '特殊属性', '升级消耗'],
        '神秘商店.json' => ['出现折扣'],
        '悬赏任务.json' => ['任务目标', '任务奖励道具'],
        '战令奖励表.json' => ['基础奖励', '高级奖励'],
        '装备典藏表.json' => ['道具数量', '高级奖励'],
        '装备兑换表.json' => ['兑换消耗', '明细'],
        '装备品级属性表.json' => ['属性'],
        '装备升星.json' => ['必得属性', '随机属性', '消耗'],
        '装备套装表.json' => ['套装明细', '两件套属性', '四件套属性', '六件套属性', '八件套属性'],
        '装备洗练.json' => ['属性库', '消耗'],
    ];

    /**
     * @return void
     */
    protected function configure()
    {
        $this->addArgument('name', InputArgument::OPTIONAL, 'Name description');
    }

    /**
     * @param InputInterface $input
     * @param OutputInterface $output
     * @return int
     */
    protected function execute(InputInterface $input, OutputInterface $output): int
    {
        // $name = $input->getArgument('name');
        // $output->writeln('Hello command:sendLotteryEmail');

        foreach (self::JSON_FIEDLS as $file_name => $json_field) {
            $confs = getItems($file_name);
            foreach ($confs as $item) {
                foreach ($json_field as $val) {
                    if ($item[$val]) {
                        $res = json_decode($item[$val], true);
                        if (is_null($res)) {
                            echo $file_name . '-' . $item['key'] . '解析失败';
                        }
                    }

                }
            }

        }


        return self::SUCCESS;
    }

}
